Custom extensions 自定义扩展
BPMN 2.0 标准对于各方都是一个好东西。最终用户不用担心会绑死在供应商提供的专有解决方案上。 框架,特别是 Activiti 这样的开源框架,可以提供相同功能 (甚至是更好的实现),足以和大的供应商媲美。 按照BPMN 2.0 标准,从大供应商的解决方案迁移到 Activiti 只会经过一个简单而平滑的过程。
标准不好的一点是,它常常是不同公司之间大量讨论和妥协的结果。 (而且通常是愿景)。作为开发者去阅读流程定义的 BPMN 2.0 XML 时,有时会感觉用这种结构和方法去做事太麻烦了。 因此 Activiti 把简化开发作为最优先的事情,我们会使用一些被称为 ‘Activiti BPMN 扩展’的功能。这些扩展是新的结构或方法来简化对应的结构,它们并不属于 BPMN 2.0 规范。
虽然 BPMN 2.0 规范清楚的指明了如何开发自定义扩展, 但是我们还要确认一下几点:
- 自定义扩展的前提是总有简单的方法 转换成标准方法。 所以当你决定使用自定义扩展时,不用担心没办法回头。
- 当使用自定义扩展时,总会清楚的指明使用了 新的XML元素,属性,等等。 比如会使用 activiti: 命名空间前缀。
- 这些扩展的目标是最终把它们加入到下一版本的 BPMN 规范中,或者至少可以引起对特定 BPMN 结构的讨论。
因此无论是是否想要使用自定义扩展,这都取决于你。很多因素会影响决定这个决定(图形编辑器,公司策略,等等)。只是因为我们相信标准里的一些功能可以更简单或更高效,所以才决定提供自定义扩展。请对扩展给予我们(正面或负面)的评价, 或者是对自定义扩展的心想法。 说不定有一天你的想法就会加入到规范中